<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.0//EN"
  "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-1.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" version="XHTML+RDFa 1.0" dir="ltr"
  xmlns:fb="http://www.facebook.com/2008/fbml"
  xmlns:content="http://purl.org/rss/1.0/modules/content/"
  xmlns:dc="http://purl.org/dc/terms/"
  xmlns:foaf="http://xmlns.com/foaf/0.1/"
  xmlns:og="http://ogp.me/ns#"
  xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  xmlns:sioc="http://rdfs.org/sioc/ns#"
  xmlns:sioct="http://rdfs.org/sioc/types#"
  xmlns:skos="http://www.w3.org/2004/02/skos/core#"
  xmlns:xsd="http://www.w3.org/2001/XMLSchema#">

<head profile="http://www.w3.org/1999/xhtml/vocab">
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="shortcut icon" href="http://zedboard.com/sites/all/themes/zedboard/favicon.ico" type="image/vnd.microsoft.icon" />
<meta name="description" content="&gt; Hello All, I am in process of doing some evaluation with Zynq devices. My setup is  Environment - Avnet Zedboard with s25fl256s1 (32768 Kbytes) QSPI flash Petalinux 2014.4 Vivado 2014.4" />
<meta name="generator" content="Drupal 7 (http://drupal.org)" />
<link rel="canonical" href="http://zedboard.com/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi" />
<link rel="shortlink" href="http://zedboard.com/node/11276" />
<meta name="twitter:card" content="summary" />
<meta name="twitter:url" content="http://zedboard.com/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi" />
<meta name="twitter:title" content="Field upgrade strategy for Zynq - using SDCARD and QSPI" />
<meta name="twitter:description" content="&gt; Hello All, I am in process of doing some evaluation with Zynq devices. My setup is  Environment - Avnet Zedboard with s25fl256s1 (32768 Kbytes) QSPI flash Petalinux 2014.4 Vivado 2014.4" />
  <title>Field upgrade strategy for Zynq - using SDCARD and QSPI | Zedboard</title>
  <link type="text/css" rel="stylesheet" href="http://zedboard.com/sites/default/files/css/css_xE-rWrJf-fncB6ztZfd2huxqgxu4WO-qwma6Xer30m4.css" media="all" />
<link type="text/css" rel="stylesheet" href="http://zedboard.com/sites/default/files/css/css_Ghm4eTnbt6tfkiDBS3-3c1AeMGuXutgKLx98b0qqmH8.css" media="all" />
<link type="text/css" rel="stylesheet" href="http://zedboard.com/sites/default/files/css/css_YawQXU8aOJGhBdz_mgpa6UqZLJBPMewYj3Ip6N4KUuM.css" media="all" />
<link type="text/css" rel="stylesheet" href="http://zedboard.com/sites/default/files/css/css_Bf4pPHw_8JnVJnQkPeyG4jNguJLEcEQdxwPYuVifQNI.css" media="all" />

<!--[if IE 6]>
<link type="text/css" rel="stylesheet" href="http://zedboard.com/sites/all/themes/zedboard/style.ie6.css?pdp6k3" media="all" />
<![endif]-->
  <script type="text/javascript" src="http://zedboard.com/sites/default/files/js/js_vDrW3Ry_4gtSYaLsh77lWhWjIC6ml2QNkcfvfP5CVFs.js"></script>
<script type="text/javascript" src="http://zedboard.com/sites/default/files/js/js_IfMCH1o4K_O4ro0fwYHrd8Ci49uja6uXyqZ6ejkc3gs.js"></script>
<script type="text/javascript" src="http://zedboard.com/sites/default/files/js/js_UjydstfnYbdNM1Cy_gJOdUQJFaH1y2IL7jQ9n3BGMo0.js"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
      // close script tag for SecKit protection
      //--><!]]>
      </script>
      <script type="text/javascript" src="/sites/all/modules/seckit/js/seckit.document_write.js"></script>
      <link type="text/css" rel="stylesheet" id="seckit-clickjacking-no-body" media="all" href="/sites/all/modules/seckit/css/seckit.no_body.css" />
      <!-- stop SecKit protection -->
      <noscript>
      <link type="text/css" rel="stylesheet" id="seckit-clickjacking-noscript-tag" media="all" href="/sites/all/modules/seckit/css/seckit.noscript_tag.css" />
      <div id="seckit-noscript-tag">
        <h1>Sorry, you need to enable JavaScript to visit this website.</h1>
      </div>
      </noscript>
      <script type="text/javascript">
      <!--//--><![CDATA[//><!--
      // open script tag to avoid syntax errors
//--><!]]>
</script>
<script type="text/javascript" src="http://zedboard.com/sites/default/files/js/js_gPqjYq7fqdMzw8-29XWQIVoDSWTmZCGy9OqaHppNxuQ.js"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
(function(i,s,o,g,r,a,m){i["GoogleAnalyticsObject"]=r;i[r]=i[r]||function(){(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)})(window,document,"script","https://www.google-analytics.com/analytics.js","ga");ga("create", "UA-35776769-1", {"cookieDomain":"auto"});ga("send", "pageview");
//--><!]]>
</script>
<script type="text/javascript" src="http://zedboard.com/sites/default/files/js/js_ZwtHh_UtMhEyIZ7P23uU_tO_tZHXgPG1rk11b_m8s9Y.js"></script>
<script type="text/javascript" src="http://zedboard.com/sites/default/files/js/js_I9jfM-g_r6a-9jWyk2R6LCAzKWwmX128D8NQ2I8LRLI.js"></script>
<script type="text/javascript">
<!--//--><![CDATA[//><!--
jQuery.extend(Drupal.settings, {"basePath":"\/","pathPrefix":"","ajaxPageState":{"theme":"zedboard","theme_token":"I_Fb9KRUw1vU2wCIog1mWLV34aUhMA_s7qeH7OI1nU0","js":{"sites\/all\/modules\/addthis\/addthis.js":1,"misc\/jquery.js":1,"misc\/jquery.once.js":1,"misc\/drupal.js":1,"misc\/ajax.js":1,"sites\/all\/libraries\/colorbox\/jquery.colorbox-min.js":1,"sites\/all\/modules\/colorbox\/js\/colorbox.js":1,"sites\/all\/modules\/colorbox\/styles\/default\/colorbox_style.js":1,"0":1,"sites\/all\/modules\/google_analytics\/googleanalytics.js":1,"1":1,"misc\/progress.js":1,"sites\/all\/themes\/zedboard\/scripts\/hoverIntent.js":1,"sites\/all\/themes\/zedboard\/scripts\/superfish.js":1,"sites\/all\/themes\/zedboard\/scripts\/script.js":1,"sites\/all\/themes\/zedboard\/scripts\/s_code.js":1,"sites\/all\/themes\/zedboard\/scripts\/jquery.stylish-select.js":1},"css":{"modules\/system\/system.base.css":1,"modules\/system\/system.menus.css":1,"modules\/system\/system.messages.css":1,"modules\/system\/system.theme.css":1,"modules\/comment\/comment.css":1,"sites\/all\/modules\/date\/date_api\/date.css":1,"modules\/field\/theme\/field.css":1,"modules\/node\/node.css":1,"modules\/search\/search.css":1,"modules\/user\/user.css":1,"modules\/forum\/forum.css":1,"sites\/all\/modules\/views\/css\/views.css":1,"sites\/all\/modules\/ckeditor\/css\/ckeditor.css":1,"sites\/all\/modules\/colorbox\/styles\/default\/colorbox_style.css":1,"sites\/all\/modules\/ctools\/css\/ctools.css":1,"sites\/all\/modules\/panels\/css\/panels.css":1,"sites\/all\/modules\/advanced_forum\/styles\/naked\/advanced-forum.naked.structure.css":1,"sites\/all\/modules\/advanced_forum\/styles\/silver_bells\/advanced-forum.silver_bells.style.css":1,"sites\/all\/modules\/advanced_forum\/styles\/naked\/advanced-forum.naked.images.css":1,"sites\/all\/modules\/advanced_forum\/styles\/silver_bells\/advanced-forum.silver_bells.images.css":1,"modules\/locale\/locale.css":1,"sites\/all\/themes\/zedboard\/style.css":1,"sites\/all\/themes\/zedboard\/stylish-select.css":1,"sites\/all\/themes\/zedboard\/style.ie6.css":1}},"colorbox":{"opacity":"0.85","current":"{current} of {total}","previous":"\u00ab Prev","next":"Next \u00bb","close":"Close","maxWidth":"98%","maxHeight":"98%","fixed":true,"mobiledetect":true,"mobiledevicewidth":"480px"},"googleanalytics":{"trackOutbound":1,"trackMailto":1,"trackDownload":1,"trackDownloadExtensions":"7z|aac|arc|arj|asf|asx|avi|bin|csv|doc(x|m)?|dot(x|m)?|exe|flv|gif|gz|gzip|hqx|jar|jpe?g|js|mp(2|3|4|e?g)|mov(ie)?|msi|msp|pdf|phps|png|ppt(x|m)?|pot(x|m)?|pps(x|m)?|ppam|sld(x|m)?|thmx|qtm?|ra(m|r)?|sea|sit|tar|tgz|torrent|txt|wav|wma|wmv|wpd|xls(x|m|b)?|xlt(x|m)|xlam|xml|z|zip","trackColorbox":1},"env":1,"urlIsAjaxTrusted":{"\/content\/field-upgrade-strategy-zynq-using-sdcard-and-qspi":true},"addthis":{"async":false,"domready":true,"widget_url":"http:\/\/s7.addthis.com\/js\/300\/addthis_widget.js","addthis_config":{"pubid":"","services_compact":"more","services_exclude":"","data_track_clickback":false,"ui_508_compliant":false,"ui_click":false,"ui_cobrand":"","ui_delay":0,"ui_header_background":"","ui_header_color":"","ui_open_windows":false,"ui_use_css":true,"ui_use_addressbook":false,"ui_language":"en"},"addthis_share":{"templates":{"twitter":"{{title}} {{url}} via @AddThis"}}}});
//--><!]]>
</script>
  <script type="text/javascript">
    /* <![CDATA[ */
    var google_conversion_id = 957010440;
    var google_custom_params = window.google_tag_params; var google_remarketing_only = true;
    /* ]]> */
  </script>
  <script type="text/javascript" src="//www.googleadservices.com/pagead/conversion.js">
  </script>
  <noscript>
    <div style="display:inline;">
      <img height="1" width="1" style="border-style:none;" alt="" src="//googleads.g.doubleclick.net/pagead/viewthroughconversion/957010440/?value=0&amp;guid=ON&amp;script=0"/>
    </div> </noscript>
</head>
<body class="html not-front not-logged-in no-sidebars page-node page-node- page-node-11276 node-type-forum i18n-en" >
  <div id="skip-link">
    <a href="#main-content" class="element-invisible element-focusable">Skip to main content</a>
  </div>
    
<!--[if IE]>
<link type="text/css" rel="stylesheet" media="all" href="/sites/all/themes/zedboard/ie.css" />
<![endif]-->
<div >
    <div id="header">
        <div id="header-wrapper">
            <a href="/" title=""><img id="avnet-logo" src="/sites/all/themes/zedboard/logos/avnet.png" alt="" /></a>
            
            
                            <div id="authorize">
                    <ul><li class="first"><a href="/user">Login</a></li><li><a href="/user/register">Register</a></li></ul>
                </div>
            
        </div><!-- end header-wrapper -->
    </div> <!-- /header -->
    <div style="clear:both"></div>

    <!--<div id="menu">-->
            <div id="nav">
                    </div> <!-- end primary -->
        <!--</div>  end menu -->

            <div id="search-box">
              <div class="region region-search-box">
    <div id="block-system-main-menu" class="block block-system main-menu-block block-menu">


<div class="content">
  <ul class="menu has-submenu"><li class="first leaf"><a href="/" class="first leaf">Home</a></li>
<li class="expanded product-hover"><a href="/products" class="expanded">Products</a><ul class="menu has-submenu"><li class="first expanded"><a href="http://zedboard.org/product/ultrazed" class="first expanded">UltraZed</a><ul class="menu has-submenu"><li class="first expanded"><a href="/product/ultrazed-ev" class="first expanded">UltraZed-EV</a><ul class="menu"><li class="first leaf"><a href="/product/ultrazed-ev" class="first leaf">UltraZed-EV System-On-Module (SOM)</a></li>
<li class="leaf"><a href="/product/ultrazed-ev-starter-kit" class="leaf">UltraZed-EV Starter Kit</a></li>
<li class="last leaf"><a href="/product/ultrazed-ev-carrier-card" class="last leaf">UltraZed-EV Carrier Card</a></li>
</ul></li>
<li class="last expanded"><a href="/product/ultrazed-EG" class="last expanded">UltraZed-EG</a><ul class="menu"><li class="first leaf"><a href="/product/ultrazed-EG" class="first leaf">UltraZed-EG System-On-Module (SOM)</a></li>
<li class="leaf"><a href="/product/ultrazed-eg-starter-kit" class="leaf">UltraZed-EG Starter Kit</a></li>
<li class="leaf"><a href="/product/ultrazed-eg-io-carrier-card" class="leaf">UltraZed-EG IO Carrier Card</a></li>
<li class="last leaf"><a href="/product/ultrazed-eg-pcie-carrier-card" class="last leaf">UltraZed-EG PCIe Carrier Card</a></li>
</ul></li>
</ul></li>
<li class="expanded"><a href="/product/ultra96" class="expanded">Ultra96</a><ul class="menu"><li class="first leaf"><a href="/product/ultra96" class="first leaf">Ultra96 Development Board</a></li>
<li class="last leaf"><a href="/product/ultra96-usb-jtaguart-pod" class="last leaf">Ultra96 USB-to-JTAG/UART Pod</a></li>
</ul></li>
<li class="expanded"><a href="/product/mini-itx-board" class="expanded">Zynq  Mini-ITX</a><ul class="menu"><li class="first last leaf"><a href="/product/mini-itx-board" class="first last leaf">Mini-ITX Development Kit</a></li>
</ul></li>
<li class="expanded"><a href="/product/picozed" class="expanded">Picozed</a><ul class="menu has-submenu"><li class="first leaf"><a href="/product/picozed" class="first leaf">PicoZed System-On-Module (SOM)</a></li>
<li class="leaf"><a href="/product/picozed-fmc-carrier-card-v2" class="leaf">PicoZed FMC Carrier Card Version 2</a></li>
<li class="last expanded"><a href="/product/picozed-smart-vision-development-kit" class="last expanded">Obsolete-Products</a><ul class="menu"><li class="first leaf"><a href="/product/picozed-smart-vision-development-kit" class="first leaf">PicoZed Smart Vision Dev Kit</a></li>
<li class="leaf"><a href="/product/picozed-sdr-1x1-som" class="leaf">PicoZed SDR  1x1 SOM</a></li>
<li class="leaf"><a href="/product/picozed-sdr-som-2x2" class="leaf">PicoZed SDR 2x2 SOM</a></li>
<li class="leaf"><a href="/product/picozed-embedded-vision-kit" class="leaf">PicoZed Embedded Vision Kit</a></li>
<li class="leaf"><a href="/product/picozed-sdr-breakout-carrier" class="leaf">PicoZed SDR Breakout Carrier</a></li>
<li class="leaf"><a href="/product/picozed-sdr-development-kit" class="leaf">PicoZed SDR Development Kit</a></li>
<li class="leaf"><a href="/product/picozed-carrier-card" class="leaf">PicoZed FMC Carrier Card v1</a></li>
<li class="last leaf"><a href="http://zedboard.org/product/picozed-aztek-transceiver-evaluation-kit" class="last leaf">AZTEK Transceiver Evaluation Kit</a></li>
</ul></li>
</ul></li>
<li class="expanded"><a href="/product/microzed" class="expanded">Microzed</a><ul class="menu has-submenu"><li class="first leaf"><a href="/product/microzed" class="first leaf">MicroZed Development Board</a></li>
<li class="leaf"><a href="/product/microzed-single-board-computer-sbc" class="leaf">MicroZed Single Board Computer (SBC)</a></li>
<li class="leaf"><a href="/product/microzed-industry-40-ethernet-kit" class="leaf">MicroZed Industry 4.0 Ethernet Kit</a></li>
<li class="leaf"><a href="/product/tdnext-126mpixel-pmod-camera-kit" class="leaf">TDNext 1.26Mpixel Pmod Camera Kit</a></li>
<li class="leaf"><a href="/product/python-1300-c-camera-module" class="leaf">ON PYTHON-1300-C Camera Module</a></li>
<li class="leaf"><a href="/product/arduino-cc" class="leaf">Arduino Carrier Card</a></li>
<li class="leaf"><a href="/product/microzed-breakout-carrier-card" class="leaf">Breakout Carrier Card</a></li>
<li class="leaf"><a href="/product/microzed-fmc-carrier" class="leaf">FMC Carrier Card</a></li>
<li class="leaf"><a href="/product/microzed-io-carrier-card" class="leaf">IO Carrier Card</a></li>
<li class="last expanded"><a href="/product/microzed-iiot-starter-kit" class="last expanded">Obsolete-Products</a><ul class="menu"><li class="first leaf"><a href="/product/microzed-iiot-starter-kit" class="first leaf">MicroZed Industrial IoT Starter Kit</a></li>
<li class="leaf"><a href="/product/microzed-embedded-vision-kits" class="leaf">MicroZed Embedded Vision Kit</a></li>
<li class="last leaf"><a href="/product/wilink-8-adaptor" class="last leaf">WiLink 8 Adaptor</a></li>
</ul></li>
</ul></li>
<li class="leaf"><a href="/product/minized" class="leaf">MiniZed</a></li>
<li class="expanded"><a href="/product/zedboard" class="expanded">ZedBoard</a><ul class="menu has-submenu"><li class="first leaf"><a href="/product/zedboard" class="first leaf">ZedBoard Development Kit</a></li>
<li class="last expanded"><a href="/product/zynq-idk-ii" class="last expanded">Obsolete-Products</a><ul class="menu"><li class="first leaf"><a href="/product/zynq-idk-ii" class="first leaf">ZedBoard Intelligent Drives Kit II</a></li>
<li class="last leaf"><a href="/product/zedboard-sdr-ii-evaluation-kit" class="last leaf">ZedBoard Software Defined Radio II Eval Kit</a></li>
</ul></li>
</ul></li>
<li class="expanded"><a href="/accessories" class="expanded">Accessories</a><ul class="menu"><li class="first collapsed"><a href="/accessories" class="first collapsed">All Accessories</a></li>
<li class="leaf"><a href="/product/network-fmc-module" class="leaf">Network FMC Module</a></li>
<li class="last leaf"><a href="/product/trusted-platform-module-security-pmod" class="last leaf">Trusted Platform Module 2.0 Security PMOD</a></li>
</ul></li>
<li class="last expanded"><a href="http://zedboard.com/accessories/display-kits" class="last expanded">Obsolete-Families</a><ul class="menu has-submenu"><li class="first expanded"><a href="http://zedboard.com/accessories/display-kits" class="first expanded">Touch Display Kits</a><ul class="menu"><li class="first leaf"><a href="/product/7-inch-zed-touch-display-kit" class="first leaf">7&quot; Touch Display Kit</a></li>
<li class="last leaf"><a href="/product/10-inch-touch-display-kit" class="last leaf">10&quot; Touch Display Kit</a></li>
</ul></li>
<li class="last expanded"><a href="/product/zynq-mmp-eol" class="last expanded">Zynq Mini-Modules Plus (EOL)</a><ul class="menu"><li class="first leaf"><a href="/product/zynq-mmp-eol" class="first leaf">Mini-Module Plus</a></li>
<li class="last leaf"><a href="/product/mmp-baseboard-ii-eol" class="last leaf">Mini-Module Plus BaseBoard II (EOL)</a></li>
</ul></li>
</ul></li>
</ul></li>
<li class="expanded applications-link"><a href="/applications" class="expanded applications-link">Applications</a><ul class="menu has-submenu"><li class="first expanded"><a href="/application/embedded-vision" class="first expanded">Embedded Vision</a><ul class="menu"><li class="first leaf"><a href="/product/ultrazed-eg-starter-kit" class="first leaf">On Python Camera</a></li>
<li class="leaf"><a href="/product/python-1300-c-camera-module" class="leaf">TD Next Camera</a></li>
<li class="last leaf"><a href="/product/python-1300-c-camera-module" class="last leaf">UltraZed-EG Starter Kit</a></li>
</ul></li>
<li class="expanded"><a href="/application/industrial-iot" class="expanded">Industrial IOT</a><ul class="menu"><li class="first leaf"><a href="/product/cybersecurity-concept-design" class="first leaf">Cybersecurity Concept Design</a></li>
<li class="leaf"><a href="/product/time-sensitive-networking-design" class="leaf">Time-Sensitive Networking Design</a></li>
<li class="leaf"><a href="/product/microzed-single-board-computer-sbc" class="leaf">MicroZed Single Board Computer (SBC)</a></li>
<li class="leaf"><a href="/product/network-fmc-module" class="leaf">Network FMC Module</a></li>
<li class="leaf"><a href="/product/trusted-platform-module-security-pmod" class="leaf">Trusted Platform Module</a></li>
<li class="leaf"><a href="/product/ultrazed-eg-io-carrier-card" class="leaf">UltraZed-EG IO Carrier Card</a></li>
<li class="last leaf"><a href="/product/ultrazed-ev-starter-kit" class="last leaf">UltraZed-EV Starter Kit</a></li>
</ul></li>
<li class="last expanded"><a href="/application/voice-processing" class="last expanded">Voice Processing</a><ul class="menu"><li class="first last leaf"><a href="/product/AEV13MZ" class="first last leaf">Aware Far Field Voice Development Kit</a></li>
</ul></li>
</ul></li>
<li class="expanded support-hover"><a href="/support" class="expanded support-hover">Support</a><ul class="menu"><li class="first leaf"><a href="/support/documentation" class="first leaf">Documentation</a></li>
<li class="leaf"><a href="/support/design" class="leaf">Reference Designs/Tutorials</a></li>
<li class="leaf"><a href="/forums/zed-english-forum" class="leaf">Support Forums</a></li>
<li class="leaf"><a href="/support/trainings-and-videos" class="leaf">Training and Videos</a></li>
<li class="leaf"><a href="/policies" class="leaf">Policies</a></li>
<li class="last leaf"><a href="/contact" class="last leaf">Contact Us</a></li>
</ul></li>
<li class="leaf"><a href="/projects" class="leaf">Projects</a></li>
<li class="last leaf"><a href="/partners" class="last leaf">Partners</a></li>
</ul></div> <!-- end block content -->
</div> <!-- end block -->
<div id="block-search-form" class="block block-search">


<div class="content">
  <form action="/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi" method="post" id="search-block-form" accept-charset="UTF-8"><div><div class="container-inline">
      <h2 class="element-invisible">Search form</h2>
    <div class="form-item form-type-textfield form-item-search-block-form">
  <label class="element-invisible" for="edit-search-block-form--2">Search </label>
 <input title="Enter the terms you wish to search for." type="text" id="edit-search-block-form--2" name="search_block_form" value="" size="15" maxlength="128" class="form-text" />
</div>
<div class="form-actions form-wrapper" id="edit-actions"><span class="whitebtn"><input type="submit" id="edit-submit" name="op" value="Search" class="form-submit" /><span class="right-sd"></span></span> </div><input type="hidden" name="form_build_id" value="form-eaBDYv36VVHaKKrqXxnva4eWVezFG-fC2aDP_Eoaw2A" />
<input type="hidden" name="form_id" value="search_block_form" />
</div>
</div></form></div> <!-- end block content -->
</div> <!-- end block -->
<div id="block-menu-block-3" class="block block-menu-block">


<div class="content">
  <div class="menu-block-wrapper menu-block-3 menu-name-menu-products parent-mlid-0 menu-level-1">
  </div>
</div> <!-- end block content -->
</div> <!-- end block -->
  </div>
        </div><!-- /search-box -->
        <div id="logos-wrapper">
                    <div id="logo-wrapper">
                <div class="logo">
                                        <a href="http://zedboard.org/product/microzed" title="MicroZed"><img src="http://zedboard.com/sites/all/themes/zedboard/logos/mz-org.png" alt="MicroZed" /></a>
                    <a href="http://zedboard.org/product/picozed" title="PicoZed"><img src="http://zedboard.com/sites/all/themes/zedboard/logos/pz-org.png" alt="PicoZed" /></a>
                    <a href="http://zedboard.org/product/ultrazed"  title="UltraZed"><img src="http://zedboard.com/sites/all/themes/zedboard/logos/ultrazed.png" alt="" /></a>
                    <a href="http://zedboard.org/product/ultra96" title="Ultra96"><img src="http://zedboard.com/sites/all/themes/zedboard/logos/ultra96.jpg" alt="Ultra96" /></a>
                    <a href="http://zedboard.org/product/zedboard" title="ZedBoard"><img src="http://zedboard.com/sites/all/themes/zedboard/logos/ZB-org.png" alt="ZedBoard" /></a>
                    <a href="http://zedboard.org/product/minized" title="Minized"><img src="http://zedboard.com/sites/all/themes/zedboard/logos/minized.png" alt="Minized" /></a>
                </div>
            </div><!-- end logo wrapper -->
            </div>
    <div style="clear:both"></div>

    
    
    <div style="clear:both"></div>
    <div id="wrapper">

                <div class="breadcrumb"><a href="/">Home</a><span class="separator"> → </span><a href="/forum">Forum</a><span class="separator"> → </span><a href="/forums/software-application-development">Software Application Development</a></div>        <div id="content">
            <a id="main-content"></a>
                                                                <h1 class="title" id="page-title">
                    Field upgrade strategy for Zynq - using SDCARD and QSPI                </h1>
                                                    <div class="tabs">
                                    </div>
                                                <div class="content-middle">  <div class="region region-content">
    <div id="block-system-main" class="block block-system">


<div class="content">
  
  
<div class="post-state">    <div class="unsolved"> Unsolved</div>

<div id="forum-topic-header" class="forum-topic-header clearfix">
    
    <div class="topic-post-count">
        4 posts / 0 new    </div>

            <div class="topic-reply-link">
            <a href="/user/login?destination=node/11276%23comment-form">Log in</a> or <a href="/user/register?destination=node/11276%23comment-form">register</a> to post comments        </div>
    
    <a id="forum-topic-top"></a>
</div>

<div id="post-11276" class="forum-post clearfix en posted-by-86511"  about="/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi" typeof="sioc:Post sioct:BoardPost">
  <div class="forum-post-info clearfix">
    <div class="forum-posted-on">
      <span property="dc:date dc:created" content="2015-10-20T07:56:38-07:00" datatype="xsd:dateTime">Tue, 2015-10-20 07:56</span>
                </div>
    
    
            <div class="solution_like">


      <span class="like">
                    
      <span class="likes-counter"></span>                    
                  
        
      </span>
      
            </div>
  </div> 
  <div class="forum-post-wrapper">
    <div class="forum-post-panel-sub">
              <div class="author-pane"><a href="/users/ganeshk" class="member-fl-name">ganeshk</a><br><span class="member-title"><span class="rank-junior">Junior</span>(1)</span></div>          </div>

    <div class="forum-post-panel-main clearfix">
              <div class="forum-post-title">
          Field upgrade strategy for Zynq - using SDCARD and QSPI        </div>
      
      <div class="forum-post-content">
        <div class="field field-name-body field-type-text-with-summary field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>&lt;&lt;Cross posted on Xilinx forums for exposure&gt;&gt;</p>
<p>Hello All,</p>
<p>I am in process of doing some evaluation with Zynq devices. My setup is</p>
<p>Environment - Avnet Zedboard with s25fl256s1 (32768 Kbytes) QSPI flash</p>
<p>Petalinux 2014.4</p>
<p>Vivado 2014.4</p>
<p>Please pardon me for my lack of understanding about Zynq&#039;s, uboot and linux, as I am(was) a primarily bare metal microcontroller firmware developer. I have started with a base project based on xapp1078 and 2014.4 tools are the lastest version supported, so persisted with them. I have been able to boot up Linux on CPU0. Next stage for me is to work out a suitable field upgrade strategy. Using flascp commands I have been able to copy BOOT.bin, image.ub to mtd0 and mtd2 on QSPI and successfully boot up from it. Field devices will always boot up using QSPI. Our upgrade strategy is to provide with a upgrade file which users will copy to sdcard and insert into device. An app running on cpu0 would be able to identify it, decrypt and untar it and use flashcp to copy new BOOT.bin and image.ub files and reboot. Now I a few questions regarding this -</p>
<p>1. Is it possible to replace BOOT.bin and image.ub(uboot, kernel, dev tree and rootfs) in a running system using kernel userspace? If XIP is used, I don&#039;t think this is possible. What is the ideal solution? I understand that not always bit file, kernel, and uboot will change but for simplicity sake I am assuming firmware upgrade means replacing both BOOT.bin and image.ub file.</p>
<p>2. Power loss during upgrade is a real issue, so currently our other linux devices use a dual firmware image solution(ping-pong). In other TI based devices, on a successful update the UBL(first stage BootL) is modified to pick the new address of UBoot. Also uboot env is changed to point to new kernel and rootfs. This change happens at the end of successful upgrade, so any issue during upgrade, the firmware will boot from the previous image.</p>
<p>I can use unpacking and decrypting solution from those projects. But what I have not been able to work out is a ping-pong solution using bootROM and fsbl. Currently my project uses mtd0-BOOT.bin, mtd1- env, mtd2- image.ub. Is it possible to create 3 more partitions(there is enough space on zedboard) to have the other image and instruct rom bootloader to pick say mtd3 with BOOT2.bin? As far as I have read, I don&#039;t think that&#039;s possible, but I did see a fallback golden image solution, in case of corrupted BL header. But it would fail to detect corrupted kernel or rootfs.</p>
<p>How could I implement a similar ping pong solution using ROM bootL and FSBL?</p>
<p>What I have been able to come up till now is that I may have to keep fsbl permanent not allow to be field upgradeable. Say I make a .bin file with only fsbl. If then I could modify fsbl code, to read some location and pick appropriate version of UBoot and bit file. That is acceptable.</p>
<p>Can experts please point out if I am thinking sane and any pitfalls in this issue?</p>
<p>Is there any better/easier way of doing a ping-pong firmware field upgrade?</p>
<p>I have found source code for fsbl, but would be great if someone could give some pointers about changes to be done and gotchas to be taken care of.</p>
<p>Apologise for a long post.</p>
<p>Thanks</p>
</div></div></div><div class="field field-name-field-share field-type-addthis field-label-hidden"><div class="field-items"><div class="field-item even"><div class="addthis_toolbox addthis_default_style  " addthis:title="Field upgrade strategy for Zynq - using SDCARD and QSPI - Zedboard" addthis:url="http://zedboard.com/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi"><a href="http://www.addthis.com/bookmark.php?v=300" class="addthis_button_facebook"></a>
<a href="http://www.addthis.com/bookmark.php?v=300" class="addthis_button_twitter"></a>
<a href="http://www.addthis.com/bookmark.php?v=300" class="addthis_button_google"></a>
</div>
</div></div></div>      </div>

      
          </div>
  </div>
  
  <div class="forum-post-footer clearfix">
    <div class="forum-jump-links">
      <a href="#forum-topic-top" title="Jump to top of page"
         class="af-button-small"><span>Top</span></a>
    </div>

    <div class="forum-post-links">
      <ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/11276%23comment-form">Log in</a> or <a href="/user/register?destination=node/11276%23comment-form">register</a> to post comments</span></li>
</ul>    </div>
  </div>
  </div>
<div id="forum-comments" class="comment-wrapper">
  <a id="comment-20826"></a>


<div id="post-20826" class="forum-post clearfix en posted-by-6651 comment-unsolved"  about="/comment/20826#comment-20826" typeof="sioc:Post sioct:Comment">
  <div class="forum-post-info clearfix">
    <div class="forum-posted-on">
      Tue, 2015-10-20 16:13
                    
        
                  </div>
    
    
            <div class="solution_like">


      <span class="like">
                    
      <span class="likes-counter"></span>            
                            
      
      </span>
      
                        </div>
  </div> 
  <div class="forum-post-wrapper">
    <div class="forum-post-panel-sub">
              <div class="author-pane"><a href="/users/hockeyman1972" class="member-fl-name">hockeyman1972</a><br><span class="member-title"><span class="rank-junior">Junior</span>(11)</span></div>          </div>

    <div class="forum-post-panel-main clearfix">
              <div class="forum-post-title">
          Field upgrade        </div>
      
      <div class="forum-post-content">
        <span rel="sioc:reply_of" resource="/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi" class="rdf-meta element-hidden"></span><div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Hi GK,<br />
I'll take a shot at answering what I can:<br />
1. Once PetaLinux is running from ramdisk, it no longer requires access to the primary boot area.  You can mount an SD card, and copy files from the mounted FAT32 partition to QSPI, replacing whatever is already there.  You can do this from userspace using the root login.<br />
2. Zynq has a feature called multi-boot, which can be enabled to allow a golden image stored in a separate non-volatile memory location away from your field upgrade image.  If the field upgrade image is corrupt, as would be the case if the system lost power during the copy, the Zynq ROM code will locate the golden image and boot from that.  This allows the system to be restored to a working state, even after a failed upgrade, at which point the upgrade can be tried again. <br />
Ron<br />
 </p>
</div></div></div>      </div>

      
          </div>
  </div>
  
  <div class="forum-post-footer clearfix">
    <div class="forum-jump-links">
      <a href="#forum-topic-top" title="Jump to top of page"
         class="af-button-small"><span>Top</span></a>
    </div>

    <div class="forum-post-links">
      <ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/11276%23comment-form">Log in</a> or <a href="/user/register?destination=node/11276%23comment-form">register</a> to post comments</span></li>
</ul>    </div>
  </div>
  </div>

<div class="indented"><a id="comment-20851"></a>


<div id="post-20851" class="forum-post clearfix en posted-by-86511 post-by-starter comment-unsolved"  about="/comment/20851#comment-20851" typeof="sioc:Post sioct:Comment">
  <div class="forum-post-info clearfix">
    <div class="forum-posted-on">
      Wed, 2015-10-21 05:16
                    
        
                  </div>
    
          <span class="forum-in-reply-to"><a href="/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi#comment-20826" class="active">(Reply to #2)</a></span>
    
            <div class="solution_like">


      <span class="like">
                    
      <span class="likes-counter"></span>            
                            
      
      </span>
      
                        </div>
  </div> 
  <div class="forum-post-wrapper">
    <div class="forum-post-panel-sub">
              <div class="author-pane"><a href="/users/ganeshk" class="member-fl-name">ganeshk</a><br><span class="member-title"><span class="rank-junior">Junior</span>(1)</span></div>          </div>

    <div class="forum-post-panel-main clearfix">
              <div class="forum-post-title">
          Zynq multiboot confusion        </div>
      
      <div class="forum-post-content">
        <span rel="sioc:reply_of" resource="/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi" class="rdf-meta element-hidden"></span><span rel="sioc:reply_of" resource="/comment/20826#comment-20826" class="rdf-meta element-hidden"></span><div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>Hi Ron,<br />
Thank you for your kind response.<br />
I am looking at the following strategy.</p>
<p>Userspace application will untar, decrypt Upgrade file, replace BOOT.bin and image.ub using flashcp commands. Boot image header will be updated in the end after successful upgrade, so in case of any interruptions,  on a subsequent boot, ROM bootL will be forced to find the backup image and the process can be repeated.</p>
<p>In this case my query is, is it enough create a new image (BOOT.bin+image.ub) and flash it as backup. I mean yes, I will change redundant UBoot env to pick up redundant kernel. But how do I instruct my redundant fsbl to pick the redundant uboot?</p>
<p>Regards</p>
</div></div></div>      </div>

      
          </div>
  </div>
  
  <div class="forum-post-footer clearfix">
    <div class="forum-jump-links">
      <a href="#forum-topic-top" title="Jump to top of page"
         class="af-button-small"><span>Top</span></a>
    </div>

    <div class="forum-post-links">
      <ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/11276%23comment-form">Log in</a> or <a href="/user/register?destination=node/11276%23comment-form">register</a> to post comments</span></li>
</ul>    </div>
  </div>
  </div>
</div><a id="comment-21121"></a>


<div id="post-21121" class="forum-post clearfix en posted-by-6651 comment-unsolved"  about="/comment/21121#comment-21121" typeof="sioc:Post sioct:Comment">
  <div class="forum-post-info clearfix">
    <div class="forum-posted-on">
      Fri, 2015-10-23 15:15
                    
        
                  </div>
    
    
            <div class="solution_like">


      <span class="like">
                    
      <span class="likes-counter"></span>            
                            
      
      </span>
      
                        </div>
  </div> 
  <div class="forum-post-wrapper">
    <div class="forum-post-panel-sub">
              <div class="author-pane"><a href="/users/hockeyman1972" class="member-fl-name">hockeyman1972</a><br><span class="member-title"><span class="rank-junior">Junior</span>(11)</span></div>          </div>

    <div class="forum-post-panel-main clearfix">
              <div class="forum-post-title">
          Boot.bin contents        </div>
      
      <div class="forum-post-content">
        <span rel="sioc:reply_of" resource="/content/field-upgrade-strategy-zynq-using-sdcard-and-qspi" class="rdf-meta element-hidden"></span><div class="field field-name-comment-body field-type-text-long field-label-hidden"><div class="field-items"><div class="field-item even" property="content:encoded"><p>The BOOT.BIN file contains the FSBL, bitstream and the u-boot.elf file by default, so the FSBL and u-boot are tied together in the binary.  There is no problem loading a backup boot image and not having the FSBL and u-boot associate properly.  And as you say, the u-boot environment variables should point to the correct kernel at it's MTD partition in QSPI, so no problem there either.  The only problem I see here is that you may want to have a two step procedure to validate that the new image.ub is flashed and verified first, before updating the boot.bin.  <br />
The reason is that if the boot.bin image fails to load properly, it will trigger the multi-boot and look for the backup.  But if it loads correctly and starts the new u-boot, which in turn retrieves a new image.ub and that image is corrupt, then the kernel boot will likely panic and multi-boot won't help you there.  As far as multi-boot is concerned, everything worked because you were able to get the processor to a bare metal program (u-boot), and everything after that is implementation-specific.<br />
Ron</p>
</div></div></div>      </div>

      
          </div>
  </div>
  
  <div class="forum-post-footer clearfix">
    <div class="forum-jump-links">
      <a href="#forum-topic-top" title="Jump to top of page"
         class="af-button-small"><span>Top</span></a>
    </div>

    <div class="forum-post-links">
      <ul class="links inline"><li class="comment_forbidden first last"><span><a href="/user/login?destination=node/11276%23comment-form">Log in</a> or <a href="/user/register?destination=node/11276%23comment-form">register</a> to post comments</span></li>
</ul>    </div>
  </div>
  </div>
        </div>
</div> <!-- end block content -->
</div> <!-- end block -->
  </div>
</div>
                        
        </div> <!-- end content -->

                <div style="clear:both"></div>
    </div> <!-- end wrapper -->


    

    
    <div style="clear:both"></div>
    <div id="footer-wrapper">
                    <div id="footer">
                  <div class="region region-footer">
    <div id="block-menu-menu-getting-started" class="block block-menu">

  <h2 class="block-title">Getting Started</h2>

<div class="content">
  <ul class="menu"><li class="first leaf"><a href="/support/documentation" class="first leaf">Documentation</a></li>
<li class="leaf"><a href="/support/design" class="leaf">Reference Designs</a></li>
<li class="last leaf"><a href="/support/trainings-and-videos" class="last leaf">Training and Videos</a></li>
</ul></div> <!-- end block content -->
</div> <!-- end block -->
<div id="block-menu-menu-community-projects" class="block block-menu">

  <h2 class="block-title">Community Projects</h2>

<div class="content">
  <ul class="menu"><li class="first last leaf"><a href="/projects" class="first last leaf">View Projects</a></li>
</ul></div> <!-- end block content -->
</div> <!-- end block -->
<div id="block-menu-menu-footer-menu" class="block block-menu">

  <h2 class="block-title">footer menu</h2>

<div class="content">
  <ul class="menu"><li class="first leaf"><a href="https://www.avnet.com/wps/portal/us/company/privacy/" class="first leaf">Privacy</a></li>
<li class="last leaf"><a href="http://www.avnet.com/en-us/legal/pages/terms-and-condition.aspx" class="last leaf">Legal</a></li>
</ul></div> <!-- end block content -->
</div> <!-- end block -->
<div id="block-menu-menu-support-footer" class="block block-menu">

  <h2 class="block-title">Support</h2>

<div class="content">
  <ul class="menu"><li class="first leaf"><a href="/forums/zed-english-forum" class="first leaf">Forums</a></li>
<li class="last leaf"><a href="/contact" class="last leaf">Contacts</a></li>
</ul></div> <!-- end block content -->
</div> <!-- end block -->
  </div>
            </div>
                    </div> <!-- end footer wrapper -->

    <div style="clear:both"></div>
</div>

    <div class="region region-page-bottom">
    <!-- SiteCatalyst code version: H.20.3.
Copyright 1996-2018 Adobe, Inc. -->
<script type="text/javascript" src="http://zedboard.org/sites/all/themes/zedboard/scripts/s_code.js?pdp6k3"></script>
<script type="text/javascript"><!--

s.eVar52="Field upgrade strategy for Zynq - using SDCARD and QSPI";
s.eVar14="anonymous user";
/************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/
var s_code=s.t();if(s_code)document.write(s_code)//--></script>
<script type="text/javascript"><!--
if(navigator.appVersion.indexOf('MSIE')>=0)document.write(unescape('%3C')+'\!-'+'-')
//--></script>
<noscript><img src="http://examplecom.112.2O7.net/b/ss/examplecom/1/H.20.3--NS/0/5875579" height="1" width="1" alt=""></noscript>
<!--/DO NOT REMOVE/-->
<!-- End SiteCatalyst code version: H.20.3. -->
  </div>
<script type="text/javascript" src="http://zedboard.com/sites/default/files/js/js_MLVgtzZ1ORq9krYqkeOsRay6ou_T-0QZytivuM9tTT8.js"></script>
</body>
</html>
